/*******************************************
  Jose Andres Lara Vecino

  Author       : $Author: cainlara@gmail.com $
  Last CheckIn : $Date: 2012-08-22 18:35:06 +0000 (Wed, 22 Aug 2012) $
  Revision     : $Revision: 100 $
*******************************************/

package generico;

import java.awt.Component;

import javax.swing.JLabel;
import javax.swing.JTable;
import javax.swing.table.DefaultTableCellRenderer;

/**
 * Super clase para los cell renderers.
 * 
 * @author jose.lara12.06.2012
 */
public abstract class GenericoTablaRenderizador extends DefaultTableCellRenderer {
    private static final long serialVersionUID = 1L;
    
    private JLabel etiqueta = null;
    
    public GenericoTablaRenderizador() {
        super();
    }
    
    @Override
    public abstract Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column);
    
    protected JLabel getEtiqueta() {
        if(etiqueta == null) {
            etiqueta = new JLabel();
            etiqueta.setOpaque(true);
        }
        
        return etiqueta;
    }
    
    protected void prepararTexto(JTable tabla, boolean seleccionado, Object valor) {
        if(seleccionado) {
            getEtiqueta().setForeground(tabla.getSelectionForeground());
            getEtiqueta().setBackground(tabla.getSelectionBackground());
        }
        else {
            getEtiqueta().setForeground(tabla.getForeground());
            getEtiqueta().setBackground(tabla.getBackground());
        }
        
        if(valor instanceof String) {
            getEtiqueta().setText((String) valor);
        }
    }
}